Unification of Register Allocation and Instruction Scheduling in Compilers for Fine-grain Parallel Architectures
نویسندگان
چکیده
The i n teraction between instruction scheduling a n d register allocation has signiicant impact on the quality o f c o d e generated, particularly in compilers targeting g n e grain parallel architectures. The problem results from the fact that instruction scheduling a n d register allocation have connicting goals. Instruction scheduling tries to m aximize parallelism by s c heduling a s m any instructions as possible in parallel, which requires a large number of values to b e h eld in registers for short periods of time. On the o t her hand, register allocation attempts t o h old a small numb e r o f v alues in registers for long periods of time, resulting in limiting t he n umber of instructions that can be scheduled in parallel. This dissertation presents a m ethod for unifying t hese tasks by allocating all needed registers and f u nctional units t o an instruction simultaneously. No previous technique has achieved this degree of integration between the t wo t asks. The w ork i n t his dissertation is based on a framework consisting of three components: a technique for measuring a program's demand for all resources, a single intermediate representation of the m easured demands, and a set of transformations that perform resource allocation. The a p proach t aken in this work is based on a new paradigm of resource allocation, called Measure and Reduce in which t he resource requirements o f t he program are measured and excessive demands are removed by r e d uction transformations. The information computed during t he m eas-urement o f t he d emands for each resource is incorporated into a s i n gle intermediate representation. The r e d uction transformations for all resources operate o n t his intermediate representation, allowing transformations for diierent t ypes of resources to be performed simultaneously. T h erefore, an instruction can be allocated all resources it needs at once, resulting i n u niied resource allocation. The i n termediate representation is based on a hierarchical form of dependence DAGs, enabling t he transformations to n aturally handle instruction level parallelism. In particular, the register transformations form a framework for live range splitting i n t he a bsence of a full ordering o f t he instructions, as required by previous splitting …
منابع مشابه
Uniication of Register Allocation and Instruction Scheduling in Compilers for Fine-grain Parallel Architectures Unification of Register Allocation and Instruction Scheduling in Compilers for Fine-grain Parallel Architectures
The interaction between instruction scheduling and register allocation has signiicant impact on the quality of code generated, particularly in compilers targeting ne grain parallel architectures. The problem results from the fact that instruction scheduling and register allocation have connicting goals. Instruction scheduling tries to maximize parallelism by scheduling as many instructions as p...
متن کاملMutation Scheduling: A Unified Approach to Compiling for Fine-Grain Parallelism
Trade-o s between code selection, register allocation, and instruction scheduling are inherently interdependent, especially when compiling for ne-grain parallel architectures. However, the conventional approach to compiling for such machines arbitrarily separates these phases so that decisions made during any one phase place unnecessary constraints on the remaining phases. Mutation Scheduling a...
متن کاملMutation Scheduling : A Uni ed Approach toCompiling for Fine - Grain Parallelism ?
Trade-oos between code selection, register allocation, and instruction scheduling are inherently interdependent, especially when compiling for ne-grain parallel architectures. However, the conventional approach to compiling for such machines arbitrarily separates these phases so that decisions made during any one phase place unnecessary constraints on the remaining phases. Mutation Scheduling a...
متن کاملCode Generation Techniques for Irregular Architectures
The fast development of many different ASIPs make demands of rapid availability of dedicated compilers. Fast retargeting is a major aspect, while fast compilation times are of minor importance. There are also new demands in the quality of the generated code. Irregular properties together with fine–grain parallelism given by a target architecture have to be effectively supported by the compiler....
متن کاملURSA: A Unified ReSource Allocator for Registers and Functional Units in VLIW Architectures
The division of instruction scheduling and register allocation and assignment into separate phases can adversely affect the performance of these tasks and thus the quality of the code generated for load/store fine grained parallel architectures. Improved performance in one phase can deteriorate the performance of the other phase, possibly resulting in poorer overall performance. In this paper w...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996